import java.io.Serializable;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Iterator;


public class Jeton implements Serializable {
	
	ArrayList<Requete> contenu;

	public Jeton(){
		contenu = new ArrayList<Requete>();
	}
	
	public Jeton(Requete c){
		contenu = new ArrayList<Requete>();
		contenu.add(c);
	}
	
	public void add(Requete r){
		contenu.add(r);
	}
	
	public void supprTete(){
		contenu.remove(0);
	}
	
	public NoeudInterface transformation(Noeud R) throws RemoteException{
		NoeudInterface S = contenu.get(0).getFirst();
		Iterator<Requete> i = contenu.iterator();
		while(i.hasNext()){
			Requete r = i.next();
			// Chacun des chemins où S est en sommet de pile
			if(S.getNom().equals(r.getFirst().getNom())){
				// est dépilé
				r.get();
			}
			// Pour les autres
			else{
				// on empile R
				r.push(R);
			}
		}
		
		return S;
	}
	
	public NoeudInterface getOrigine(){
		return contenu.get(0).getSite();
	}
	
	public Boolean isEmpty(){
		return contenu.isEmpty();
	}
	
	public String toString(){
		Iterator<Requete> i = contenu.iterator();
		String retour = new String();
		retour += "<";
		while(i.hasNext()){
			Requete r = i.next();
			retour += r.toString();
		}
		retour += ">";
		
		return retour;
	}

}
